package Ajedrez.visual.Tablero;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import visual.Menu.VentanaMenu;

public class VentanaTablero extends JFrame
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1441653591161325159L;
	
	Tablero t;
	static Relojes r;
	static Salir s;
	public static TextAreas ta;
	JPanel p;
	JPanel p2;
	static int numFila;
	
	public VentanaTablero(int i, boolean tipoPartida, String s1, String s2)
	{
		t = new Tablero(i, tipoPartida);
		r = new Relojes(s1, s2);
		s = new Salir();
		ta = new TextAreas();
		p = new JPanel();
		p2 = new JPanel();
		numFila = 0;
		
	
		
		p.setLayout(new BorderLayout());
		p.add(ta, "Center");
		p.add(s, "South");
		
		p2.setLayout(new BorderLayout());
		p2.add(r, "Center");
		p2.add(p, "South");
		
		r.Blancas.start();
		
		this.setLayout(new BorderLayout());
		this.add(t, "Center");
		this.add(p2, "East");
		this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		this.setSize((300 + i*71), tamano());
		
		s.Salir.addActionListener(new escuchador());
	}
	
	private int tamano()
	{
		if(750 > (t.tamano()*74))
			return 750;
		else
			return t.tamano()*74;
	}
	
	public static void cambiarJugador(boolean b)
	{
		//Si es true hay que cambiar a las blancas y si es false hay que cambiar a las negras
		if(b)
		{
			r.Negras.pause();
			r.Blancas.start();
		}
		else
		{
			r.Blancas.pause();
			r.Negras.start();
		}
	}
	
	public static void anyadirMovimiento(String s, boolean b)
	{
		//Si es true significa que es nueva linea.
		if(b)
		{
			numFila++;
			ta.Movimientos.setText(ta.Movimientos.getText() + numFila + ". " + s);
		}
		else
		{
			ta.Movimientos.setText(ta.Movimientos.getText() + "    " + s + "\n");
		}
	}
	
	public static void main(String[] args)
	{
		VentanaTablero v = new VentanaTablero(8, true, "Blancas", "Negras");
		v.setVisible(true);
	}
	
	class escuchador implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			if(e.getActionCommand() == s.Salir.getText())
			{
				VentanaMenu v = new VentanaMenu();
				v.setVisible(true);
				dispose();
			}
		}
	}

}
